#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>

void Reverse(char* str) {
	int len = strlen(str);
	char temp = *str;
	*str = *(str + len - 1);
	*(str + len - 1) = '\0';
	//printf("%d ", strlen(str));
	if( len > 2) {
		Reverse(str + 1);
	}
	*(str + len - 1) = temp;
}

int main() {
	char str[1000] = {0};
	//scanf("%s", str);
	gets(str);
	Reverse(str);
	
   	int len = strlen(str);
	printf("%d\n", len);
	/*for (int i = 0; i < len; i++)
		printf("%c", str[i]);*/
	puts(str);
	return 0;
}
//
//#include<stdio.h>
//#include<string.h>
//
//void Reverse(char* str) {
//	int len= strlen(str);
//	int left = 0;
//	int right = len - 1;
//	while (right > left) {
//		char temp = *(str + left);
//		*(str + left) = *(str + right);
//		*(str + right) = temp;
//		left++;
//		right--;
//	}
//}
//
//int main() {
//	char str[1000] = { 0 };
//	gets(str);
//	Reverse(str);
//	puts(str);
//	return 0;
//}